//package com.yunzhou.service.impl;
//
//import com.yunzhou.service.ChatHistoryService;
//import org.springframework.stereotype.Component;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//// 在内存中保存会话记录列表
//@Component
//public class InMemoryChatHistoryServiceImpl implements ChatHistoryService {
//
//    // 会话类型作为key，会话id列表作为value
//    private final Map<String, List<String>> chatHistory = new HashMap<>();
//
//    @Override
//    public void save(String type, String chatId) {
//        // 1、先查看当前Map中是否包含当前会话类型的key，如果没有则put进去，value为List集合类型，存放会话id
//        if (!chatHistory.containsKey(type)) {
//            chatHistory.put(type, new ArrayList<>());
//        }
//        // 2、如果Map中已经有该会话类型的key，则将会话id添加到List集合中
//        List<String> chatIds = chatHistory.get(type);
////      下列写法为上述几行代码的简写
////        List<String> chatIds = chatHistory.computeIfAbsent(type, k -> new ArrayList<>());
//
//        // 2.1、判断该会话id是否已经存在，若已经存在则直接返回
//        if (chatIds.contains(chatId)) {
//            return;
//        }
//        // 2.2、将会话id添加到List集合中（头插法，下次查询效率更高）
//        chatIds.add(0, chatId);
//    }
//
//    // 获取某一会话类型下的所有会话id列表
//    @Override
//    public List<String> getChatIds(String type) {
//        List<String> chatIds = chatHistory.get(type);
//        return chatIds == null ? new ArrayList<>() : chatIds;
//
////      下列写法为上述几行代码的简写
////       return chatHistory.getOrDefault(type, List.of());
//    }
//}
